<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        window.onload = function () {
            // 方法一
            const btns = document.querySelectorAll("button");
            btns[0].onclick = function () {
                alert("事件1被执行")
                /* 
                    需求：执行一次后取消
                    实现思路：可以把该元素的事件属性设置为null
                 */
                btns[0].onclick = null;
            }

            // 方法二
            /* 
                基于监听器的注册方式跟基于属性的注册方式本质上是不一样的。
                基于监听器的注册方式不会改变 onclick属性。
             */
            btns[1].addEventListener("click", func1);

            // removeEventListener :通过该方法移除监听器即可取消事件
            function func1() {
                alert("通过监听器注册的事件");
                btns[1].removeEventListener("click", func1);
            }
        }
    </script>
</head>

<body>
    <button>事件1</button>
    <button>事件2</button>
</body>

</html>